home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / IRMANT / OEMSETUP.INF < prev   
INI File  |  1996-07-31  |  47KB  |  1,743 lines

  1. ;***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       DCA IRMAtrac network card and driver SETUP INF file.
  6. ;
  7. ; History:
  8. ;***********************************************************************
  9.  
  10. ;-----------------------------------------------------------------------
  11. ; OPTION TYPE
  12. ; -----------
  13. ; This identifies the Option type we are dealing with.  The different
  14. ; possible types are:
  15. ;
  16. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  17. ;
  18. ;  Types specific to networking:
  19. ;
  20. ; NetAdapter,        a netcard / adapter combination or just a netcard
  21. ; NetDriver,         just a netcard driver
  22. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  23. ; NetService,        an NT networking service
  24. ; NetWork,           a complete network ensemble.
  25. ; NetProvider        a complete network which supports NT MPR protocol
  26. ;-----------------------------------------------------------------------
  27.  
  28. [Identification]
  29.     OptionType = NetAdapter
  30.  
  31. ;-----------------------------------------------------------------------
  32. ; PlatformsSupported
  33. ; ------------------
  34. ; This identifies the platforms supported by the adapter card.
  35. ; Possible types are:
  36. ;
  37. ; ISA, EISA and MCA
  38. ;-----------------------------------------------------------------------
  39.  
  40. [PlatformsSupported]
  41.     ISA
  42.     MCA
  43.     EISA
  44.  
  45. ;-----------------------------------------------------------------------
  46. ; OPTION LIST
  47. ; -----------
  48. ; This section lists the OEM Option key names.  These keys are locale
  49. ; independent and used to represent the option in a locale independent
  50. ; manner.
  51. ;
  52. ;-----------------------------------------------------------------------
  53.  
  54. [Options]
  55.     IRMAtrac
  56.  
  57. ;***********************************************************************
  58. ; CONSTANTS FOR USING DIALOGS
  59. ;***********************************************************************
  60.  
  61. [FileConstants]
  62.  
  63.  
  64. GenericInfVersion  = " v4.0.0c"
  65. GenericAdapterName = "DCA IRMAtrac Token-Ring Adapter"
  66. GenericDriverName  = "DCA IRMAtrac Token-Ring Driver"
  67. GenericSysName     = "IRMAtrac.sys"
  68. GenericName        = "IRMAtrac"
  69.  
  70.  
  71.  
  72. ;
  73. ;  File names, etc.
  74. ;
  75. UtilityInf      = "UTILITY.INF"
  76. ParamInf        = "NCPARAM.INF"
  77. subroutineinf   = "SUBROUTN.INF"
  78. SoftwareType    = "driver"
  79. Exit_Code       = 0
  80.  
  81. ;
  82. ; EventLog Message File
  83. ;
  84. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  85. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  86. IRMAtrac_LOBYTE  = 28
  87. IRMAtrac_PHASEII = 29
  88. IRMAtrac_HIBYTE  = 92
  89. NETCARD_ID1 = { 23580}
  90. NETCARD_ID2 = { 23581}
  91. IRMAtrac_1BYTE  = 155920
  92.  
  93. ; Product Info
  94. ;
  95. Manufacturer    = "Microsoft"
  96. ProductMajorVersion     = "3"
  97. ProductMinorVersion     = "1"
  98. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  99.  
  100. ;
  101. ; Software
  102. ;
  103. ProductSoftwareName     = "IRMAtrac"
  104. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\"$(GenericSysName)
  105. NetRuleSoftwareType     = "IRMAtracSys ndisDriver IRMAtracDriver"
  106.  
  107. NetRuleSoftwareUse      = $(SoftwareType)
  108. NetRuleSoftwareBindForm = """IRMAtracSys"" yes no container"
  109.  
  110. NetRuleSoftwareClass    = {"IRMAtracDriver basic"}
  111. NetRuleSoftwareBindable = {"IRMAtracDriver IRMAtracAdapter non exclusive 100"}
  112. ;
  113. ; Hardware
  114. ;
  115. ProductHardwareName        = "IRMAtrac"
  116. NetRuleHardwareType        = "IRMAtrac IRMAtracAdapter"
  117. NetRuleHardwareBindForm    = " yes yes container"
  118. NetRuleHardwareClass       = {"IRMAtracAdapter basic"}
  119.  
  120.  
  121.  
  122. ;
  123. ; Registry Key
  124. ;
  125. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  126. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  127.  
  128.  
  129. [GeneralConstants]
  130. ;
  131. ;  Program flow control variables.
  132. ;
  133. from      = ""
  134. to        = ""
  135. ;
  136. ;  Return codes; Exit_Code is set to one of these
  137. ;
  138. ExitCodeOk     = 0
  139. ExitCodeCancel = 1
  140. ExitCodeFatal  = 2
  141.  
  142. KeyNull         = ""
  143. MAXIMUM_ALLOWED   = 33554432
  144. RegistryErrorIndex = NO_ERROR
  145. KeyProduct      = ""
  146. KeyParameters   = ""
  147.  
  148. TRUE            = 1
  149. FALSE           = 0
  150. NoTitle            = 0
  151.  
  152. ExitState   = "Active"
  153. OldVersionExisted = $(FALSE)
  154.  
  155. DriverPath      = $(!STF_NTPATH)\drivers
  156.  
  157. [date]
  158.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  159.     ; Minute, Second }
  160.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  161.  
  162.  
  163. ;---------------------------------------------------------------------------
  164. ; 1. Identify
  165. ;
  166. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  167. ;                as we are choosing currently.
  168. ;
  169. ; INPUT:         None
  170. ;
  171. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  172. ;                $($R1): Option Type (COMPUTER ...)
  173. ;                $($R2): Diskette description
  174. ;---------------------------------------------------------------------------
  175.  
  176. [Identify]
  177.     ;
  178.     ;
  179.     read-syms Identification
  180.  
  181.     set Status     = STATUS_SUCCESSFUL
  182.     set Identifier = $(OptionType)
  183.     set Media      = #("Source Media Descriptions", 1, 1)
  184.  
  185.     Return $(Status) $(Identifier) $(Media)
  186.  
  187. ;------------------------------------------------------------------------
  188. ; 2. ReturnOptions:
  189. ;
  190. ; DESCRIPTION:   To return the option list supported by this INF and the
  191. ;                localised text list representing the options.
  192. ;
  193. ;
  194. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  195. ;
  196. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  197. ;                                STATUS_NOLANGUAGE
  198. ;                                STATUS_FAILED
  199. ;                                STATUS_NOTSUPPORTED
  200. ;
  201. ;                $($R1): Option List
  202. ;                $($R2): Option Text List
  203. ;------------------------------------------------------------------------
  204.  
  205. [ReturnOptions]
  206.     ;
  207.     ;
  208.     set Status        = STATUS_FAILED
  209.     set OptionList     = {}
  210.     set OptionTextList = {}
  211.  
  212.     ;
  213.     ; Check if the language requested is supported
  214.     ;
  215.     set LanguageList = ^(LanguagesSupported, 1)
  216.     Ifcontains(i) $($0) in $(LanguageList)
  217.     ;
  218.     ; Check if the platforms requested is supported
  219.     ;
  220.     ifstr(i) $($1) == ""
  221.             goto returnoptions
  222.     endif
  223.  
  224.     set PlatformList = ^(PlatformsSupported, 1)
  225.     Ifcontains(i) $($1) in $(PlatformList)
  226.             goto returnoptions
  227.     else
  228.             set Status = STATUS_NOTSUPPORTED
  229.             goto finish_ReturnOptions
  230.     endif
  231.     else
  232.         set Status = STATUS_NOLANGUAGE
  233.         goto finish_ReturnOptions
  234.     endif
  235.  
  236.     ;
  237.     ; form a list of all the options and another of the text representing
  238.     ;
  239.  
  240. returnoptions = +
  241.     set OptionList     = ^(Options, 1)
  242.     set OptionTextList = ^(OptionsText$($0), 1)
  243.     set Status         = STATUS_SUCCESSFUL
  244.  
  245. finish_ReturnOptions = +
  246.     Return $(Status) $(OptionList) $(OptionTextList)
  247.  
  248. ;------------------------------------------------------------------------
  249. ;
  250. ; InstallOption:
  251. ;
  252. ;      This section is shelled to by main installation processing
  253. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  254. ;
  255. ;
  256. ; FUNCTION:  To copy files representing Options
  257. ;            To configure the installed option
  258. ;            To update the registry for the installed option
  259. ;
  260. ; INPUT:     $($0):  Language to use
  261. ;            $($1):  OptionID to install
  262. ;            $($2):  SourceDirectory
  263. ;            $($3):  AddCopy  (YES | NO)
  264. ;            $($4):  DoCopy   (YES | NO)
  265. ;            $($5):  DoConfig (YES | NO)
  266. ;
  267. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  268. ;                            STATUS_NOLANGUAGE |
  269. ;                            STATUS_USERCANCEL |
  270. ;                            STATUS_FAILED
  271. ;
  272. ;------------------------------------------------------------------------
  273. [InstallOption]
  274.     ;
  275.     ; Set default values for
  276.     ;
  277.     set Status   = STATUS_FAILED
  278.     ;
  279.     ; extract parameters
  280.     ;
  281.     set Option   = $($1)
  282.     set SrcDir   = $($2)
  283.     set AddCopy  = $($3)
  284.     set DoCopy   = $($4)
  285.     set DoConfig = $($5)
  286.     ifstr(i) $(SrcDir) == ""
  287.        Set SrcDir = "A:\"
  288.     Endif
  289.  
  290.     ;
  291.     ; Check if the language requested is supported
  292.     ;
  293.     set LanguageList = ^(LanguagesSupported, 1)
  294.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  295.     Return STATUS_NOLANGUAGE
  296.     endif
  297.  
  298.     set-subst LF = "\n"
  299.  
  300.     read-syms GeneralConstants
  301.     read-syms FileConstants
  302.  
  303.     read-syms DialogConstants$(!STF_LANGUAGE)
  304.     ifstr(i) $(!NTN_Origination) == "NCPA"
  305.     set Continue = $(OK)
  306.     endif
  307.     read-syms FileConstants$(!STF_LANGUAGE)
  308.  
  309.     detect date
  310.  
  311.     set-title  $(FunctionTitle)
  312.  
  313.     set to   = Begin
  314.     set from = Begin
  315. ;
  316. ;  Assume all is well.
  317. ;
  318.     set CommonStatus = STATUS_SUCCESSFUL
  319.  
  320.     EndWait
  321.  
  322. ;
  323. ;   Set up the operation-mode-based variables and gaily welcome
  324. ;   the user.  If the "install mode" variable is improperly set,
  325. ;   assume this is a new installation.
  326. ;
  327.  
  328. Begin = +
  329.     Set ActivateDetection = FALSE
  330.  
  331.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  332.     set StartLabel = removeadapter
  333.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  334.     set StartLabel = UpgradeSoftware
  335.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  336.     set StartLabel = bindingadapter
  337.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  338. ;        set ActivateDetection = TRUE
  339.     set StartLabel = configureadapter
  340.     ;
  341.     ;   You cannot config the software component
  342.     ;
  343.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  344.         Debug-Output "Cannot configure the DCA IRMAtrac driver software."
  345.         Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  346.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  347.         Debug-Output "ShellCode error: cannot get an error string."
  348.         goto ShellCodeError
  349.         endif
  350.         set Error = $($R0)
  351.         set from = end
  352.         set to = end
  353.         goto nonfatalinfo
  354.     endif
  355.     else
  356. ;        set ActivateDetection = TRUE
  357.     set StartLabel = installadapter
  358.     set OEM_ABANDON_OPTIONS = {}
  359.     set OEM_ABANDON_SOFTWARE = FALSE
  360.     set OEM_ABANDON_ON = TRUE
  361.     endif
  362.  
  363.  
  364.  
  365.     ;  set the default values
  366.  
  367.     ; IRQ Level = 3
  368.     set IRQValue = *($(IRQList), 2)
  369.  
  370.     ; IOBase Address = 0xa20
  371.     set IOBaseAddrValue = *($(IOBaseAddrList), 2)
  372.  
  373.     ; DMACHANNEL = 5
  374.     set DmaChannelValue = *($(DmaChannelList), 2)
  375.  
  376.     ;   Burst
  377.     set BurstSizeValue = *($(BurstSizeList), 1)
  378.  
  379.     ; RECVBUFCOUNT = 16
  380.     set RecvListCountValue = *($(RecvListCountList), 6)
  381.  
  382.     ; MAXTRANSMITS =  64
  383.     set XmitListCountValue = *($(XmitListCountList), 7)
  384.  
  385.     ; MAXFRAMELEN = 4500
  386.     set PacketsizeValue = *($(PacketsizeList), 3)
  387.  
  388.     set RadioIn = { 2, 3, 6 }
  389.  
  390.     Set from = $(fatal)
  391.     Set to = $(fatal)
  392.     Goto $(StartLabel)
  393.  
  394. ;-----------------------------------------------
  395. ; Installation Section
  396. ;-----------------------------------------------
  397.  
  398. installadapter = +
  399. ;
  400. ;   First, check whether the same version of the software exists
  401. ;
  402.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  403.  
  404.     Ifstr $(KeyProduct) != $(KeyNull)
  405.     ;
  406.     ; Same version already existed in the local machine
  407.     ; Popup the dialog and ask the user whether he wants to continue
  408.     ;
  409.     CloseRegKey $(KeyProduct)
  410.  
  411.     ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  412.        ;
  413.        ; Cannot Install the same software again
  414.        ;
  415.        Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  416.            $(ProductVersion)
  417.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  418.            Debug-Output "ShellCode error: cannot get an error string."
  419.            goto ShellCodeError
  420.        endif
  421.  
  422.        goto end
  423.     else
  424.        ;
  425.        ; Add a new adapter card?
  426.        ;
  427.        Shell $(UtilityInf), CardExistedDlg
  428.  
  429.        ifint $($ShellCode) != $(!SHELL_CODE_OK)
  430.            Debug-Output "ShellCode error: cannot get an error string."
  431.            goto ShellCodeError
  432.        endif
  433.  
  434.        ifstr(i) $($R1) != "OK"
  435.            goto end
  436.        endif
  437.        set OldVersionExisted = $(TRUE)
  438.     endif
  439.     endif
  440.  
  441. ;
  442. ;  dll load addition
  443. ;
  444.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) NO
  445.  
  446.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  447.     Goto ShellCodeError
  448.     Else-Ifstr(i) $($R0) == STATUS_FAILED
  449.     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  450.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  451.         goto ShellCodeError
  452.     endif
  453.     set Error = $($R0)
  454.     Goto fatal
  455.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  456.     Goto successful
  457.     Endif
  458.  
  459.     Set SrcDir = $($R1)
  460.  
  461.     install "Install-Dll"
  462.  
  463.     goto adaptersetup
  464.  
  465. ;-----------------------------------------------
  466. ; Configuration Section
  467. ;-----------------------------------------------
  468. ;
  469. ;   Get the current values of all the parameters
  470. ;
  471. configureadapter = +
  472.     Ifstr $(KeyProduct) == $(KeyNull)
  473.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  474.     Ifstr $(KeyProduct) == $(KeyNull)
  475.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  476.         Debug-Output "Cannot find component product key"
  477.         goto fatalregistry
  478.     Endif
  479.     Endif
  480.  
  481.     ;
  482.     ; Get the other parameters;  they're attached to the service parameters key
  483.     ;
  484.     Debug-Output "INF: Shelling to FindService"
  485.     Shell $(UtilityInf) FindService, $(KeyProduct)
  486.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  487.     Debug-Output "INF: FindService shell failure"
  488.     Goto ShellCodeError
  489.     Endif
  490.     Ifstr(i) $($R0) != NO_ERROR
  491.     Debug-Output "INF: FindService Shell error: "$($R0)
  492.     Goto fatalregistry
  493.     endif
  494.  
  495.     Set KeyParameters = $($R2)
  496.  
  497.     ;
  498.     ;  We don't need the services key, so close it.
  499.     ;
  500.     CloseRegKey $($R1)
  501.  
  502.     Ifstr $(KeyParameters) == $(KeyNull)
  503.     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  504.     Debug-Output "Cannot find component service"
  505.     goto fatalregistry
  506.     endif
  507.  
  508.     set OldVersionExisted = $(TRUE)
  509.  
  510.     set ValueName = ""
  511.     set ValueData = ""
  512.     set ValueStr  = ""
  513.     set ValueList = {}
  514.  
  515.  
  516.     ;
  517.     ; Get the old values
  518.     ;
  519.     EnumRegValue $(KeyParameters) ValueList
  520.  
  521.     ForListDo $(ValueList)
  522.     set ValueItem = $($)
  523.     set ValueName = *($(ValueItem),1)
  524.     set ValueData = *($(ValueItem),4)
  525.     ifstr(i) $(ValueName) == "INTERRUPT"
  526.         set IRQValueIndex = $(ValueData)
  527.     else-ifstr(i) $(ValueName) == "IOADDRESS"
  528.         set IOBaseAddrIndex = $(ValueData)
  529.     else-ifstr(i) $(ValueName) == "DMACHANNEL"
  530.         set DmaChannelIndex = $(ValueData)
  531.     else-ifstr(i) $(ValueName) == "BURSI"
  532.         set BurstSizeIndex = $(ValueData)
  533.     else-ifstr(i) $(ValueName) == "RECVBUFCOUNT"
  534.         set RecvListCountIndex = $(ValueData)
  535.     else-ifstr(i) $(ValueName) == "MAXTRANSMITS"
  536.         set XmitListCountIndex = $(ValueData)
  537.     else-ifstr(i) $(ValueName) == "MAXFRAMELEN"
  538.         set PacketsizeIndex = $(ValueData)
  539.     else-Ifstr(i) $(ValueName) == "CABLETYPE"
  540.         set CABLETYPE = $(ValueData)
  541.     else-Ifstr(i) $(ValueName) == "DATARATE"
  542.         set DATARATE = $(ValueData)
  543.     else-Ifstr(i) $(ValueName) == "EARLYRELEASE"
  544.         set EARLYRELEASE = $(ValueData)
  545.     else-Ifstr(i) $(ValueName) == "NetworkAddress"
  546.        set NetworkAddress = $(ValueData)
  547.     endif
  548.  
  549.  
  550.     EndForListDo
  551.  
  552.     set IRQValue = *($(IRQList), ~($(IRQValues),$(IRQValueIndex)))
  553.     ifstr(i) $(IRQValue) == ""
  554.     set IRQValue = *($(IRQList), 2)
  555.     endif
  556.  
  557.  
  558.     set DmaChannelValue = *($(DmaChannelList), ~($(DmaChannelValues),$(DmaChannelIndex)))
  559.     ifstr(i) $(DmaChannelValue) == ""
  560.     set DmaChannelValue = *($(DmaChannelList), 2)
  561.     endif
  562.  
  563.     set BurstSizeValue = *($(BurstSizeList), ~($(BurstSizeValues),$(BurstSizeIndex)))
  564.     ifstr(i) $(BurstSizeValue) == ""
  565.     set BurstSizeValue = *($(BurstSizeList), 1)
  566.     endif
  567.  
  568.  
  569.     set RecvListCountValue = *($(RecvListCountList), ~($(RecvListCountValues),$(RecvListCountIndex)))
  570.     ifstr(i) $(RecvListCountValue) == ""
  571.     set RecvListCountValue = *($(RecvListCountList), 6)
  572.     endif
  573.  
  574.     set XmitListCountValue = *($(XmitListCountList), ~($(XmitListCountValues),$(XmitListCountIndex)))
  575.     ifstr(i) $(XmitListCountValue) == ""
  576.     set XmitListCountValue = *($(XmitListCountList), 4)
  577.     endif
  578.  
  579.     set PacketsizeValue = *($(PacketsizeList), ~($(PacketsizeValues),$(PacketsizeIndex)))
  580.     ifstr(i) $(PacketsizeValue) == ""
  581.     set PacketsizeValue = *($(PacketsizeList), 3)
  582.     endif
  583.  
  584.  
  585.     set IOBaseAddrValue = *($(IOBaseAddrList), ~($(IOBaseAddrValues),$(IOBaseAddrIndex)))
  586.     ifstr(i) $(IOBaseAddrValue) == ""
  587.     set IOBaseAddrValue = *($(IOBaseAddrList), 2)
  588.     endif
  589.  
  590.     Ifint $(EARLYRELEASE) == 1
  591.     set Rad1 = 1
  592.     else
  593.     set Rad1 = 2
  594.     endif
  595.  
  596.     Ifint $(DATARATE) == 4
  597.     set Rad2 = 3
  598.     else
  599.     set Rad2 = 4
  600.     endif
  601.  
  602.     Ifstr(i) $(CABLETYPE) == 1
  603.     set Rad3 = 5
  604.     else
  605.     set Rad3 = 6
  606.     endif
  607.     set RadioIn = {$(Rad1), $(Rad2), $(Rad3) }
  608.  
  609.  
  610.  
  611.     ;  Save the settings as they were read from the Registry.
  612.  
  613. ;    Shell $(ParamInf) Param_SaveValues
  614. ;    Set CurrParamSettings = $($R0)
  615. ;
  616. ;   Put up the adapter configuration dialog if necessary.
  617. ;
  618. ;   Note that $(CurrParamSettings) has the old known parameter values.
  619. ;
  620. adaptersetup = +
  621.  
  622.  
  623. ;    Shell "" DebugConfiguration "before displaying dialog"
  624.  
  625.     Set from = adapteroptions
  626.  
  627.  
  628. adapteroptions = +
  629.  
  630.  
  631.     ; ARE WE MCA
  632.  
  633.     set EISABUS = FALSE
  634.     set MCABUS = FALSE
  635.     set ISABUS = TRUE
  636.     Debug-Output "Find MCA PHASE I Card."
  637.     set InfoList = {}
  638.     Shell $(UtilityInf), MCAFindBus, $(IRMAtrac_LOBYTE), $(IRMAtrac_HIBYTE)
  639.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  640.     goto next_id
  641.     endif
  642.     ifstr $($R0) != "NO_ERROR"
  643.     set Error = $($R0)
  644.     goto next_id
  645.     endif
  646.     ifstr(i) $($R1) == {}
  647.     goto next_id
  648.     endif
  649.  
  650.     set AdapterList = $($R1)
  651.  
  652.     ForListDo $(AdapterList)
  653.     set BusNum = *($($),1)
  654.     set SlotNum = *($($),2)
  655.     set mcaid = *($($),3)
  656.  
  657.     set InfoList = >($(InfoList),{$(SlotNum),$(mcaid)})
  658.     EndForListDo
  659.  
  660.     goto found_mca
  661.  
  662.  
  663. next_id = +
  664.     Debug-Output "Find MCA PHASE II Card."
  665.     Shell $(UtilityInf), MCAFindBus, $(IRMAtrac_PHASEII), $(IRMAtrac_HIBYTE)
  666.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  667.     goto next_eisa
  668.     endif
  669.     ifstr $($R0) != "NO_ERROR"
  670.     set Error = $($R0)
  671.     goto next_eisa
  672.     endif
  673.     ifstr(i) $($R1) == {}
  674.     goto next_eisa
  675.     endif
  676.  
  677.     set AdapterList = $($R1)
  678.  
  679.     ForListDo $(AdapterList)
  680.     set BusNum = *($($),1)
  681.     set SlotNum = *($($),2)
  682.     set mcaid = *($($),3)
  683.  
  684.     set InfoList = >($(InfoList),{$(SlotNum),$(mcaid)})
  685.     EndForListDo
  686.  
  687.     goto found_mca
  688.  
  689. next_eisa = +
  690.     Shell $(UtilityInf), EISAFindBus, $(IRMAtrac_1BYTE)
  691.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  692.     goto found_bus
  693.     endif
  694.     ifstr $($R0) != "NO_ERROR"
  695.     set Error = $($R0)
  696.     goto found_bus
  697.     endif
  698.  
  699.     ifstr(i) $($R1) == {}
  700.     goto found_bus
  701.     endif
  702.  
  703. found_eisa =+
  704.  
  705.     set ISABUS = FALSE
  706.     set EISABUS = TRUE
  707.     Debug-Output "Find EISA card."$($R1)
  708.     set AdapterList = $($R1)
  709.  
  710.     ; adapterlist returned by EISAFindBus
  711.     ForListDo $(AdapterList)
  712.     set BusNum = *($($),1)
  713.     set SlotNum = *($($),2)
  714.  
  715.     Debug-Output "SLOTNUM:"*($($),2)
  716.  
  717.     goto found_bus
  718.  
  719. found_mca = +
  720.     set MCABUS = TRUE
  721.     set ISABUS = FALSE
  722.     Debug-Output "Find MCA card."$(InfoList)
  723.  
  724.     ; DONE MCA 
  725.  
  726.  
  727. found_bus = +
  728.  
  729.  
  730.     ifstr(i) $(MCABUS) == TRUE
  731.         LoadLibrary "Disk 1" $(DialogDllMca) hLib
  732.     else-Ifstr(i) $(EISABUS) == TRUE
  733.         LoadLibrary "Disk 1" $(DialogDllMca) hLib
  734.     else
  735.         LoadLibrary "Disk 1" $(DialogDllName) hLib
  736.     endif
  737.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  738.  
  739.     SetHelpFile $(!STF_CWDDIR)irmatrac.hlp 6111 6111
  740.     Debug-Output "HELP FILE"$(!STF_CWDDIR)irmatrac.hlp
  741.  
  742.     ui start "InputDlg"  $(hLib)
  743.  
  744.     set ExitButton      = $(ButtonPressed)
  745.  
  746.     FreeLibrary $(hLib)
  747.  
  748.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  749.         set IRQValueIndex = $(Combo5Out)
  750.         set IOBaseAddrIndex = $(Combo6Out)
  751.         set DmaChannelIndex = $(Combo7Out)
  752.         set BurstSizeIndex = $(Combo4Out)
  753.         set RecvListCountIndex = $(Combo2Out)
  754.         set XmitListCountIndex = $(Combo3Out)
  755.         set PacketsizeIndex = $(Combo1Out)
  756.         set NetworkAddress = *($(EditTextOut),1)
  757.         IfContains "1" IN $(RadioOut)
  758.             set EARLYRELEASE = 1
  759.         else-IfContains "2" IN $(RadioOut)
  760.             set EARLYRELEASE = 2
  761.         endif
  762.         IfContains "3" IN $(RadioOut)
  763.             set DATARATE = 4
  764.         else-IfContains "4" IN $(RadioOut)
  765.             set DATARATE = 16
  766.         endif
  767.         IfContains "5" IN $(RadioOut)
  768.             set CABLETYPE = 1
  769.         else-IfContains "6" IN $(RadioOut)
  770.             set CABLETYPE = 2
  771.         endif
  772.         ui pop 1
  773.     else-ifstr(i) $(DLGEVENT) == "EXIT"
  774.         set CommonStatus = STATUS_USERCANCEL
  775.         Debug-Output "Action: exit. Bye."
  776.         ui pop 1
  777.         goto end
  778.     else
  779.         ;
  780.         ; Unknow command
  781.         ;
  782.         ui pop 1
  783.         Debug-Output "Action: unknown. Bye."
  784.         goto end
  785.     endif
  786.  
  787.  
  788. ;
  789. ;   If installing, go create the necessary keys;
  790. ;   if configuring, they're already open.
  791. ;
  792. skipoptions =+
  793.  
  794.     ifint $(OldVersionExisted) == $(TRUE)
  795.     ifstr(i) $(!NTN_InstallMode) == configure
  796.         goto writeparameters
  797.     endif
  798.     endif
  799.     StartWait
  800.     ;
  801.     ; Add Software Component
  802.     ;
  803.     ifint $(OldVersionExisted) == $(FALSE)
  804.  
  805.     ifstr(i) $(!NTN_InstallMode) == "install"
  806.        Ifstr(i) $(DoCopy) == "YES"
  807.  
  808.           Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  809.  
  810.           Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  811.           Goto ShellCodeError
  812.           Else-Ifstr(i) $($R0) == STATUS_FAILED
  813.           Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  814.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  815.               goto ShellCodeError
  816.           endif
  817.           set Error = $($R0)
  818.           Goto fatal
  819.           Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  820.           Goto successful
  821.           Endif
  822.  
  823.           Set SrcDir = $($R1)
  824.  
  825.        Endif
  826.  
  827.        install "Install-Option"
  828.  
  829.        ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  830.           Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  831.           ifint $($ShellCode) != $(!SHELL_CODE_OK)
  832.           goto ShellCodeError
  833.           endif
  834.           set Error = $($R0)
  835.           goto fatal
  836.        endif
  837.     endif
  838.  
  839.  
  840.  
  841.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  842.         $(ProductSoftwareName), +
  843.         $(ProductSoftwareName), +
  844.         $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  845.         $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  846.         $(NetEventDLL)
  847.  
  848.     Set OEM_ABANDON_SOFTWARE = TRUE
  849.  
  850.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  851.         Debug-Output "ShellCode error"
  852.         goto ShellCodeError
  853.     endif
  854.     ;
  855.     ;   At this point:
  856.     ;     $R1 contains the product version key handle;
  857.     ;     $R2 contains the NetRules subkey handle;
  858.     ;     $R3 contains the new Services key handle; and
  859.     ;     $R4 contains the Parameters key
  860.     ;     $R5 contains the Linkage Key
  861.     ;
  862.     set RegistryErrorIndex = $($R0)
  863.     set KeyProduct      = $($R1)
  864.     Set SoftNetRulesKey = $($R2)
  865.     CloseRegKey $($R3)
  866.     CloseRegKey $($R4)
  867.     CloseRegKey $($R5)
  868.  
  869.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  870.         EndWait
  871.         Debug-Output "Registry error: add software components"
  872.         CloseRegKey $(KeyProduct)
  873.         CloseRegKey $(SoftNetRulesKey)
  874.         goto fatalregistry
  875.     endif
  876.  
  877.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  878.                {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  879.                {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  880.                {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  881.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  882.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  883.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  884.  
  885.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  886.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  887.         Debug-Output "ShellCode error."
  888.         goto ShellCodeError
  889.     endif
  890.  
  891.     set RegistryErrorIndex = $($R0)
  892.  
  893.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  894.         EndWait
  895.         Debug-Output "Registry error: add value list."
  896.         CloseRegKey $(KeyProduct)
  897.         CloseRegKey $(SoftNetRulesKey)
  898.         goto fatalregistry
  899.     endif
  900.  
  901.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  902.                 {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  903.                 {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  904.                 {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  905.                 {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  906.                 {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  907.  
  908.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  909.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  910.         Debug-Output "ShellCode error."
  911.         goto ShellCodeError
  912.     endif
  913.  
  914.     set RegistryErrorIndex = $($R0)
  915.  
  916.     CloseRegKey $(KeyProduct)
  917.     CloseRegKey $(SoftNetRulesKey)
  918.  
  919.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  920.         EndWait
  921.         Debug-Output "Resgitry error: add value list."
  922.         goto fatalregistry
  923.     endif
  924.     endif
  925. ;
  926. ;   Create the HARDWARE\Netcard region and its corresponding service
  927. ;
  928.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  929.  
  930.     ifint $($R4) != -1
  931.     Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  932.     endif
  933.  
  934.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  935.     Debug-Output "Cannot add hardware component"
  936.     goto ShellCodeError
  937.     endif
  938.  
  939.     set RegistryErrorIndex = $($R0)
  940.  
  941.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  942.     EndWait
  943.     Debug-Output "Registry error: add hardware component"
  944.     CloseRegKey $($R1)
  945.     CloseRegKey $($R2)
  946.     CloseRegKey $($R3)
  947.     goto fatalregistry
  948.     endif
  949.  
  950. ;
  951. ;   At this point:
  952. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  953. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  954. ;     $R3  Registry key handle for <service>\Parameters key
  955. ;     $R4  Adapter number assigned to adapter
  956. ;     $R5  Service name generated by combining svc name with adapter number
  957. ;
  958.     set KeyParameters = $($R3)
  959.     set KeyAdapterRules = $($R2)
  960.     set AdapterNumber = $($R4)
  961.  
  962.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  963.                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  964.                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  965.                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  966.                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  967.                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  968.  
  969.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  970.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  971.     Debug-Output "ShellCode error"
  972.     goto ShellCodeError
  973.     endif
  974.  
  975.     CloseRegKey $($R1)
  976.  
  977.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  978.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  979.  
  980.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  981.             {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  982.             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  983.             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  984.  
  985.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  986.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  987.     Debug-Output "ShellCode error."
  988.     goto ShellCodeError
  989.     endif
  990.  
  991.     set RegistryErrorIndex = $($R0)
  992.  
  993.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  994.     EndWait
  995.     Debug-Output "Resgitry error: add value list."
  996.     CloseRegKey $(KeyParameters)
  997.     CloseRegKey $(KeyAdapterRules)
  998.     goto fatalregistry
  999.     endif
  1000.  
  1001.     CloseRegKey $(KeyAdapterRules)
  1002.  
  1003.     goto writeparameters
  1004. ;
  1005. ;   REQUIRED:   $(KeyParameters) contains service Parameters key handle
  1006. ;
  1007. writeparameters = +
  1008.     Shell $(UtilityInf), GetBusTypeNum
  1009.     set BusTypeNum = $($R1)
  1010.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1011.     Debug-Output "ShellCode error."
  1012.     goto ShellCodeError
  1013.     endif
  1014.  
  1015.     set DmaChannelValue = *($(DmaChannelValues), ~($(DmaChannelList),$(DmaChannelIndex)))
  1016.  
  1017.     set RecvListCountValue = *($(RecvListCountValues), ~($(RecvListCountList),$(RecvListCountIndex)))
  1018.  
  1019.     set XmitListCountValue = *($(XmitListCountValues), ~($(XmitListCountList),$(XmitListCountIndex)))
  1020.  
  1021.     set PacketsizeValue = *($(PacketsizeValues), ~($(PacketsizeList),$(PacketsizeIndex)))
  1022.  
  1023.     set IRQValue = *($(IRQValues), ~($(IRQList),$(IRQValueIndex)))
  1024.  
  1025.     set IOBaseAddrValue = *($(IOBaseAddrValues), ~($(IOBaseAddrList),$(IOBaseAddrIndex)))
  1026.  
  1027.     set BurstSizeValue = *($(BurstSizeValues), ~($(BurstSizeList),$(BurstSizeIndex)))
  1028.  
  1029.     set NetworkAddress = *($(EditTextOut),1)
  1030.  
  1031.     Debug-Output "WRITE PARAMETERS"
  1032.  
  1033.     ifstr(i) $(MCABUS) == TRUE
  1034.  
  1035.     Ifstr $(AdapterNumber) == $(KeyNull)
  1036.     ; configure adapter not new installation
  1037.  
  1038.     set NewValueList = {{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
  1039.             {RECVBUFCOUNT,     $(NoTitle),$(!REG_VT_DWORD),$(RecvListCountValue)},+
  1040.             {MAXTRANSMITS,     $(NoTitle),$(!REG_VT_DWORD),$(XmitListCountValue)},+
  1041.             {EARLYRELEASE,$(NoTitle),$(!REG_VT_DWORD),$(EARLYRELEASE)},+
  1042.             {MAXFRAMELEN,     $(NoTitle),$(!REG_VT_DWORD),$(PacketsizeValue)}}
  1043.     else    
  1044.     Debug-Output "Adapter number "$(AdapterNumber)
  1045.  
  1046.     Set Indx = 0
  1047.     ForListDo $(InfoList)
  1048.         Debug-Output "InfoList-1"$(InfoList)
  1049.         Set-add Indx = $(Indx),1
  1050.  
  1051.         Debug-Output "InfoList"$(InfoList)
  1052.  
  1053.         set SlotNum = *($($),1)
  1054.         set mcaid = *($($),2)
  1055.         Debug-Output "slot number "$(SlotNum)
  1056.         Debug-Output "mca pos id "$(mcaid)
  1057.  
  1058.         Ifint $(Indx) == $(AdapterNumber)
  1059.             goto write_mca
  1060.         endif
  1061.     EndForListDo
  1062.  
  1063. write_mca=+
  1064.     set NewValueList = {{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
  1065.             {McaPosId,$(NoTitle),$(!REG_VT_DWORD),$(mcaid)},+
  1066.             {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
  1067.             {BUSTYPE,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1068.             {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1069.             {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  1070.             {RECVBUFCOUNT,     $(NoTitle),$(!REG_VT_DWORD),$(RecvListCountValue)},+
  1071.             {MAXTRANSMITS,     $(NoTitle),$(!REG_VT_DWORD),$(XmitListCountValue)},+
  1072.             {EARLYRELEASE,$(NoTitle),$(!REG_VT_DWORD),$(EARLYRELEASE)},+
  1073.             {MAXFRAMELEN,     $(NoTitle),$(!REG_VT_DWORD),$(PacketsizeValue)}}
  1074.     Debug-Output "WRITE PARAMETERS -- MCA"
  1075.     endif
  1076.  
  1077.     endif
  1078.     Ifstr(i) $(EISABUS) == TRUE
  1079.     set NewValueList = {{NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
  1080.             {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1081.             {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  1082.             {BUSTYPE,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1083.             {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(SlotNum)},+
  1084.             {EISACompressedId,$(NoTitle),$(!REG_VT_DWORD),$(IRMAtrac_1BYTE)},+
  1085.             {RECVBUFCOUNT,     $(NoTitle),$(!REG_VT_DWORD),$(RecvListCountValue)},+
  1086.             {MAXTRANSMITS,     $(NoTitle),$(!REG_VT_DWORD),$(XmitListCountValue)},+
  1087.             {EARLYRELEASE,$(NoTitle),$(!REG_VT_DWORD),$(EARLYRELEASE)},+
  1088.             {MAXFRAMELEN,     $(NoTitle),$(!REG_VT_DWORD),$(PacketsizeValue)}}
  1089.  
  1090.     Debug-Output "WRITE PARAMETERS -- EISA"
  1091.     endif
  1092.     Ifstr(i) $(ISABUS) == TRUE
  1093.     set NewValueList = {{INTERRUPT,$(NoTitle),$(!REG_VT_DWORD),$(IRQValue)},+
  1094.             {IOADDRESS,  $(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  1095.             {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
  1096.             {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1097.             {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  1098.             {BUSTYPE,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1099.             {DMACHANNEL,     $(NoTitle),$(!REG_VT_DWORD),$(DmaChannelValue)},+
  1100.             {RECVBUFCOUNT,     $(NoTitle),$(!REG_VT_DWORD),$(RecvListCountValue)},+
  1101.             {BURSI,  $(NoTitle),$(!REG_VT_DWORD),$(BurstSizeValue)},+
  1102.             {MAXTRANSMITS,     $(NoTitle),$(!REG_VT_DWORD),$(XmitListCountValue)},+
  1103.             {MAXFRAMELEN,     $(NoTitle),$(!REG_VT_DWORD),$(PacketsizeValue)},+
  1104.             {EARLYRELEASE,$(NoTitle),$(!REG_VT_DWORD),$(EARLYRELEASE)},+
  1105.             {DATARATE,$(NoTitle),$(!REG_VT_DWORD),$(DATARATE)},+
  1106.             {CABLETYPE,$(NoTitle),$(!REG_VT_DWORD),$(CABLETYPE)}}
  1107.     Debug-Output "WRITE PARAMETERS -- ISA"
  1108.     endif
  1109.  
  1110.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  1111.     CloseRegKey $(KeyParameters)
  1112.  
  1113.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1114.     Debug-Output "ShellCode error."
  1115.     goto ShellCodeError
  1116.     endif
  1117.  
  1118.     set RegistryErrorIndex = $($R0)
  1119.  
  1120.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1121.     Debug-Output "Registry error: Add value list"
  1122.     goto fatalregistry
  1123.     endif
  1124.  
  1125.     EndWait
  1126.  
  1127.  
  1128.     goto successful
  1129.  
  1130. ;-----------------------------------------------
  1131. ; Binding section
  1132. ;-----------------------------------------------
  1133. bindingadapter =+
  1134.     set Error = "Binding: Sorry, not yet implemented."
  1135.     goto fatal
  1136.  
  1137. ;-----------------------------------------------
  1138. ; Removeadapter section
  1139. ;-----------------------------------------------
  1140.  
  1141. removeadapter = +
  1142.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1143.     ; Remove Software Component
  1144.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1145.         $(ProductSoftwareName)
  1146.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1147.         Debug-Output "ShellCode error"
  1148.         goto ShellCodeError
  1149.     endif
  1150.  
  1151.     set RegistryErrorIndex = $($R0)
  1152.  
  1153.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1154.         goto fatalregistry
  1155.     endif
  1156.     else
  1157.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1158.         $(ProductSoftwareName), $(!NTN_RegBase)
  1159.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1160.         Debug-Output "ShellCode error"
  1161.         goto ShellCodeError
  1162.     endif
  1163.  
  1164.     set RegistryErrorIndex = $($R0)
  1165.  
  1166.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1167.         goto fatalregistry
  1168.     endif
  1169.     endif
  1170.  
  1171.     goto end
  1172.  
  1173. ;-----------------------------------------------
  1174. ; Upgrade Software section
  1175. ;-----------------------------------------------
  1176.  
  1177. UpgradeSoftware = +
  1178.     ;
  1179.     ; First determine whether we want to do upgrade or update for software
  1180.     ; or hardware component. Then we will determine whether the Mode is
  1181.     ; update or upgrade.
  1182.     ;
  1183.     ; If the same version of the product existed in the registry, we do
  1184.     ; update. Otherwise, we will do a upgrade
  1185.     ;
  1186.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1187.     ; Upgrade software component
  1188.     ;
  1189.     ; see whether the same version exist or not
  1190.     ;
  1191.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1192.  
  1193.     Ifstr $(KeyProduct) != $(KeyNull)
  1194.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1195.         set Version = *($(VersionInfo), 4)
  1196.  
  1197.         ;
  1198.         ; Update the binaries
  1199.         ;
  1200.         Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  1201.  
  1202.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1203.         Debug-Output "ShellCode error"
  1204.         goto ShellCodeError
  1205.         endif
  1206.  
  1207.         set !UG_Filename = $($R0)
  1208.  
  1209.         ifstr(i) $(!UG_Filename) != ""
  1210.         install "Install-Update"
  1211.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1212.             goto fatal
  1213.         endif
  1214.         endif
  1215.  
  1216.         ; Upgrade the version number
  1217.         ;
  1218.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1219.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1220.  
  1221.         ;
  1222.         ; do nothing for update
  1223.         ;
  1224.         ifint $(Version) != $(ProductVersion)
  1225.            ;
  1226.            ; If the major version number is not the same,
  1227.            ; it is major upgrade. So let Upgrade the product
  1228.            ;
  1229.            ;
  1230.            ; make other upgrade change if necessary
  1231.            ;
  1232.         endif
  1233.         CloseRegKey $(KeyProduct)
  1234.     else
  1235.         ;
  1236.         ; Cannot Open software key, goto ERROR
  1237.         ;
  1238.         goto fatalregistry
  1239.     endif
  1240.     else
  1241.     ;
  1242.     ; upgrade/update hardware component
  1243.     ; There is no different between upgrade and update for hardware
  1244.     ; component
  1245.     ;
  1246.     ; 1. Get the Service Name
  1247.     ; 2. Change the NetRule section if necessary
  1248.     ;
  1249.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1250.           $(MAXIMUM_ALLOWED) NetworkCardKey
  1251.     Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1252.         ;
  1253.         ; Get Service name
  1254.         ;
  1255.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1256.         set ServiceName = *($(ServiceNameInfo), 4)
  1257.  
  1258.         ;
  1259.         ; Change the NetRule if necessary
  1260.         ;
  1261.         OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1262.         $(MAXIMUM_ALLOWED) NetRuleKey
  1263.         Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1264.         ;
  1265.         ; Make the change....
  1266.         ;
  1267.         else
  1268.         ;
  1269.         ; Error, cannot open net rules key
  1270.         ;
  1271.         goto fatalregistry
  1272.         endif
  1273.  
  1274.         CloseRegKey $(NetRules)
  1275.         CloseRegKey $(NetworkCardKey)
  1276.     else
  1277.         ;
  1278.         ; Error, cannot open network card key
  1279.         ;
  1280.         goto fatalregistry
  1281.     endif
  1282.     ;
  1283.     ; 3. Change the service section of the hardware. i.e.,
  1284.     ;    ParameterName change, value change, etc.
  1285.     ;
  1286.     OpenRegKey $(!REG_H_LOCAL) "" +
  1287.           $(!NTN_ServiceBase)"\"$(ServiceName) +
  1288.           $(MAXIMUM_ALLOWED) ServiceKey
  1289.  
  1290.     Ifstr(i) $(ServiceKey) != $(KeyNull)
  1291.         ;
  1292.         ; Get the ServiceKey to change the Start value
  1293.         ; or Type value. Or open Parameters key to
  1294.         ; change the hardware parameters if necessary.
  1295.         ;
  1296.         CloseRegKey $(ServiceKey)
  1297.     else
  1298.         ;
  1299.         ; Error, cannot open network card key
  1300.         ;
  1301.         goto fatalregistry
  1302.     endif
  1303.     endif
  1304.  
  1305.     goto end
  1306.     ;
  1307.     ; End of Upgrade Software
  1308.     ;
  1309.  
  1310. ;
  1311. ;  Escape hatches
  1312. ;
  1313. successful = +
  1314.     goto end
  1315.  
  1316. abandon = +
  1317.     ForListDo $(OEM_ABANDON_OPTIONS)
  1318.     Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1319.         $(ProductSoftwareName), $($)
  1320.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1321.         Debug-Output "ShellCode error"
  1322.         goto ShellCodeError
  1323.     endif
  1324.  
  1325.     set RegistryErrorIndex = $($R0)
  1326.  
  1327.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1328.         goto fatalregistry
  1329.     endif
  1330.     EndForListDo
  1331.  
  1332.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1333.     ; Remove Software Component
  1334.     Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1335.         $(ProductSoftwareName), FALSE
  1336.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1337.         Debug-Output "ShellCode error"
  1338.         goto ShellCodeError
  1339.     endif
  1340.  
  1341.     set RegistryErrorIndex = $($R0)
  1342.  
  1343.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1344.         goto fatalregistry
  1345.     endif
  1346.     endif
  1347.  
  1348.     goto end
  1349.  
  1350. ;
  1351. ; warning display
  1352. ;
  1353. warning = +
  1354.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1355.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1356.     goto ShellCodeError
  1357.     endif
  1358.     ifstr(i) $($R1) == "OK"
  1359.     goto $(to)
  1360.     else-ifstr(i) $($R1) == "CANCEL"
  1361.     goto $(from)
  1362.     else
  1363.     goto "end"
  1364.     endif
  1365. ;
  1366. ; non fatal error display
  1367. ;
  1368. nonfatalinfo = +
  1369.     Set Severity = STATUS
  1370.     Set CommonStatus = STATUS_USERCANCEL
  1371.     goto nonfatalmsg
  1372. nonfatal = +
  1373.     Set Severity = NONFATAL
  1374.     goto nonfatalmsg
  1375. nonfatalmsg = +
  1376.     ifstr(i) $(Error) == ""
  1377.     Set Severity = NONFATAL
  1378.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1379.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1380.         goto ShellCodeError
  1381.     endif
  1382.     set Error = $($R0)
  1383.     endif
  1384.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1385.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1386.     goto ShellCodeError
  1387.     endif
  1388.     ifstr(i) $($R1) == "OK"
  1389.     goto $(from)
  1390.     else
  1391.     goto "end"
  1392.     endif
  1393.  
  1394. ;
  1395. ;  Registry is broken
  1396. ;
  1397. fatalregistry = +
  1398.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1399.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1400.     goto ShellCodeError
  1401.     endif
  1402.     set Error = $($R0)
  1403.     goto fatal
  1404. ;
  1405. ;  Netcard detection failure
  1406. ;
  1407. fataldetect = +
  1408.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  1409.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1410.     Debug-Output "ShellCode error: cannot get an error string."
  1411.     goto ShellCodeError
  1412.     endif
  1413.     set Error = $($R0)
  1414.     Goto fatal
  1415. ;
  1416. ; fatal error display
  1417. ;
  1418. fatal = +
  1419.     ifstr(i) $(Error) == ""
  1420.     Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1421.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1422.         goto ShellCodeError
  1423.     endif
  1424.     set Error = $($R0)
  1425.     endif
  1426.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1427.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1428.     goto ShellCodeError
  1429.     endif
  1430.  
  1431.     goto setfailed
  1432.  
  1433. ;
  1434. ;  Shelling error
  1435. ;
  1436. ShellCodeError = +
  1437.     set DlgType      = "MessageBox"
  1438.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  1439.     set STF_MB_TEXT  = $(ShellCodeErrorText) 
  1440.     set STF_MB_TYPE  = 1
  1441.     set STF_MB_ICON  = 3
  1442.     set STF_MB_DEF   = 1
  1443.     ui start "Error Message"
  1444.     goto setfailed
  1445.  
  1446. setfailed = +
  1447.     set CommonStatus = STATUS_FAILED
  1448.     ;
  1449.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1450.     ;
  1451.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1452.     set OEM_ABANDON_ON = FALSE
  1453.     goto abandon
  1454.     endif
  1455.     goto end
  1456.  
  1457. end = +
  1458.     goto term
  1459.  
  1460. term = +
  1461.  
  1462.     Return $(CommonStatus)
  1463.  
  1464. [DebugConfiguration]
  1465.  
  1466.     Set InfName = "OEMSETUP.INF"
  1467.  
  1468.     return
  1469.  
  1470.  
  1471. ;***************************************************************
  1472. ;  INSTALL SECTIONS
  1473. ;***************************************************************
  1474. [Install-Option]
  1475.     set STF_VITAL = ""
  1476.  
  1477.     ifstr(i) $(AddCopy) == "YES"
  1478.  
  1479.     ;
  1480.     ; Add the files to the copy list
  1481.     ;
  1482.     ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1483.     ;      the other INF files
  1484.     ;
  1485.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1486.  
  1487.     endif
  1488.  
  1489.     ifstr(i) $(DoCopy) == "YES"
  1490.  
  1491.        ;
  1492.        ; Copy files in the copy list
  1493.        ;
  1494.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1495.        CopyFilesInCopyList
  1496.  
  1497.     endif
  1498.  
  1499.     Exit
  1500.  
  1501. [Install-Update]
  1502.    set STF_VITAL        = ""
  1503.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1504.    ;set STF_VERSION     = "YES"
  1505.  
  1506.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1507.    AddSectionFilesToCopyList Files-MCA $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1508.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1509.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1510.  
  1511.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1512.    CopyFilesInCopyList
  1513.  
  1514.    exit
  1515.  
  1516.  
  1517. [Install-Dll]
  1518.    set STF_VITAL        = ""
  1519.    AddSectionFilesToCopyList Files-HLP $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1520.    AddSectionFilesToCopyList Files-MCA $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1521.    AddSectionFilesToCopyList Files-Dll $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1522.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1523.    CopyFilesInCopyList
  1524.    exit
  1525.  
  1526. [Source Media Descriptions]
  1527.     1  = "DCA IRMAtrac Driver Disk"  
  1528.  
  1529. [Signature]
  1530.     FileType = MICROSOFT_DRVLIB_FILE
  1531. [GetSignature]
  1532.     read-syms Signature
  1533.     return $(FileType)
  1534.  
  1535. [ProductType]
  1536. STF_PRODUCT  = Winnt
  1537. STF_PLATFORM = I386
  1538.  
  1539.  
  1540. [Files-Inf]
  1541. 1,      oemsetup.inf,    SIZE=1000,     RENAME=$(!UG_Filename)
  1542.  
  1543. [Files-IRMAtrac]
  1544. 1, IRMAtrac.SYS , SIZE=88888
  1545. 1, dcamac.bin,  SIZE=54034
  1546.  
  1547. [Files-Dll]
  1548. 1, irmaisa.dll,  SIZE=999
  1549.  
  1550. [Files-MCA]
  1551. 1, irmamca.dll,  SIZE=999
  1552.  
  1553. [Files-HLP]
  1554. 1, irmatrac.hlp,  SIZE=999
  1555.  
  1556. [LanguagesSupported]
  1557.     ENG
  1558.  
  1559. [OptionsTextENG]
  1560.     IRMAtrac      = "DCA IRMAtrac Token-Ring Adapter"
  1561.  
  1562. [FileConstantsENG]
  1563. ProCaption   = "Windows NT Setup"
  1564. ProCancel    = "Cancel"
  1565. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  1566.            "Are you sure you want to cancel copying files?"
  1567. ProCancelCap = "Network Setup Message"
  1568. ProText1     = "Copying:"
  1569. ProText2     = "To:"
  1570.  
  1571. FunctionTitle   = $(GenericAdapterName)" Setup"$(GenericInfVersion)
  1572.  
  1573. ProductSoftwareDescription = $(GenericDriverName)
  1574. ProductHardwareDescription = $(GenericAdapterName)
  1575.  
  1576. ProductSoftwareTitle =       $(GenericDriverName)
  1577. ProductHardwareTitle =       $(GenericAdapterName)
  1578.  
  1579. DialogDllName   = "irmaisa.dll"
  1580. DialogDllMca   = "irmamca.dll"
  1581.  
  1582.  
  1583. IRQList  = ^(IRQChoices, 1)
  1584. IRQValues = ^(IRQChoices, 2)
  1585.  
  1586. IOBaseAddrList = ^(IOBaseAddrChoices, 1)
  1587. IOBaseAddrValues = ^(IOBaseAddrChoices, 2)
  1588.  
  1589. DmaChannelList = ^(DmaChannelChoices,1)
  1590. DmaChannelValues = ^(DmaChannelChoices,2)
  1591.  
  1592. BurstSizeList = ^(BurstSizeChoices, 1)
  1593. BurstSizeValues = ^(BurstSizeChoices, 2)
  1594.  
  1595. RecvListCountList = ^(RecvListCountChoices,1)
  1596. RecvListCountValues = ^(RecvListCountChoices,2)
  1597.  
  1598. XmitListCountList = ^(XmitListCountChoices,1)
  1599. XmitListCountValues = ^(XmitListCountChoices,2)
  1600.  
  1601. PacketsizeList = ^(PacketsizeChoices,1)
  1602. PacketsizeValues = ^(PacketsizeChoices,2)
  1603.  
  1604.  
  1605. [DialogConstantsENG]
  1606. Help        = "&Help"
  1607. Exit        = "Cancel"
  1608. OK          = "OK"
  1609. HelpContext = ""
  1610. Continue    = "Con&tinue"
  1611. Cancel      = "Cancel"
  1612.  
  1613. [FileDependentDlgENG]
  1614.  
  1615. DlgText = "Please select values for the follwing fields:"
  1616. HelpContext = 6111
  1617.  
  1618. DlgType = "RadioCombination"
  1619. DlgTemplate = "PCNET"
  1620. Caption = $(FunctionTitle)
  1621.  
  1622.  
  1623. CBOptionsGreyed = {}
  1624. NotifyFields = {NO, NO}
  1625.  
  1626. Edit1Label = "Network &Address:"
  1627. EditTextLim = 12
  1628. EditTextIn  = $(NetworkAddress)
  1629.  
  1630. Combo5Label = "&IRQ Level:"
  1631. Combo6Label = "I/&O Base Addr:"
  1632. Combo7Label = "&Dma Channel:"
  1633. Combo4Label = "&BURST Size:"
  1634. Combo2Label = "&Receive List:"
  1635. Combo3Label = "&Xmit List:"
  1636. Combo1Label = "&Max Frame Size:"
  1637.  
  1638. Group3 = "Cable &Type"
  1639. Radio5 = "&UTP"
  1640. Radio6 = "&STP"
  1641. Group2 = "Ring S&peed"
  1642. Radio3 = "&4"
  1643. Radio4 = "&16"
  1644. Group1 = "&Early Release"
  1645. Radio1 = "O&n"
  1646. Radio2 = "O&ff"
  1647.  
  1648. Combo5List = $(IRQList)
  1649. Combo5Out  = $(IRQValue)
  1650.  
  1651. Combo6List = $(IOBaseAddrList)
  1652. Combo6Out  = $(IOBaseAddrValue)
  1653.  
  1654. Combo7List = $(DmaChannelList)
  1655. Combo7Out  = $(DmaChannelValue)
  1656.  
  1657. Combo4List = $(BurstSizeList)
  1658. Combo4Out  = $(BurstSizeValue)
  1659.  
  1660. Combo2List = $(RecvListCountList)
  1661. Combo2Out  = $(RecvListCountValue)
  1662.  
  1663. Combo3List = $(XmitListCountList)
  1664. Combo3Out  = $(XmitListCountValue)
  1665.  
  1666. Combo1List = $(PacketsizeList)
  1667. Combo1Out  = $(PacketsizeValue)
  1668.  
  1669. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List, Combo5List, Combo6List, Combo7List}
  1670. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out, Combo5Out, Combo6Out, Combo7Out}
  1671.  
  1672. CBOptionsGreyed = {}
  1673. ;RadioOptionGreyed = {}
  1674. NotifyFields = {NO, NO}
  1675.  
  1676.  
  1677. ;***********************************************************************
  1678. ; CONSTANTS FOR USING DIALOGS
  1679. ;***********************************************************************
  1680. [IRQChoices]
  1681. IRQ_2 = "2",2
  1682. IRQ_3 = "3",3
  1683. IRQ_4 = "4",4
  1684. IRQ_5 = "5",5
  1685. IRQ_6 = "6",6
  1686. IRQ_7 = "7",7
  1687. IRQ_10 = "10",10
  1688. IRQ_11 = "11",11
  1689.  
  1690. [IOBaseAddrChoices]
  1691. IOAddr_1 = "0A00",2560
  1692. IOAddr_2 = "0A20",2592
  1693. IOAddr_3 = "0A40",2624
  1694. IOAddr_4 = "0A60",2656
  1695. IOAddr_5 = "1A00",6656
  1696. IOAddr_6 = "1A20",6688
  1697. IOAddr_7 = "1A40",6720
  1698. IOAddr_8 = "1A60",6752
  1699.  
  1700. [DmaChannelChoices]
  1701. Dma_3 = "03",3
  1702. Dma_5 = "05",5
  1703. Dma_6 = "06",6
  1704. Dma_7 = "07",7
  1705. Dma_17 = "PIO",0
  1706.  
  1707. [BurstSizeChoices]
  1708. BurstSize_1 = "DEFAULT",0
  1709. BurstSize_2 = "2",2
  1710. BurstSize_3 = "4",4
  1711. BurstSize_4 = "6",6
  1712. BurstSize_5 = "8",8
  1713. BurstSize_6 = "10",10
  1714. BurstSize_7 = "12",12
  1715.  
  1716. [RecvListCountChoices]
  1717. RecvListCount_1 = "2",2
  1718. RecvListCount_2 = "3",3
  1719. RecvListCount_3 = "6",6
  1720. RecvListCount_4 = "8",8
  1721. RecvListCount_5 = "12",12
  1722. RecvListCount_6 = "16",16
  1723. RecvListCount_7 = "24",24
  1724. RecvListCount_8 = "32",32
  1725.  
  1726. [XmitListCountChoices]
  1727. XmitListCount_1 = "16",16
  1728. XmitListCount_2 = "24",24
  1729. XmitListCount_3 = "32",32
  1730. XmitListCount_4 = "40",40
  1731. XmitListCount_5 = "48",48
  1732. XmitListCount_6 = "56",56
  1733. XmitListCount_7 = "64",64
  1734.  
  1735. [PacketsizeChoices]
  1736. Packetsize_1 = "2048",2048
  1737. Packetsize_2 = "4096",4096
  1738. Packetsize_3 = "4500",4500
  1739. Packetsize_4 = "8192",8192
  1740. Packetsize_5 = "16384",16384
  1741. Packetsize_6 = "18000",18000
  1742.  
  1743.